
package ar.com.arkios.kfconsap.tablas;

import ar.com.arkios.kfconmodelo.modelo.LeyendaEtiqueta;
import ar.com.arkios.kfconsap.excepciones.DataTypeInvalidConversionException;
import ar.com.arkios.kfconsap.excepciones.SapGeneralException;
import ar.com.arkios.kfconsap.excepciones.TableNotFoundException;
import com.sap.mw.jco.JCO;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Ale
 */


public class LeyendaEtiquetaDAO extends GenericSAPDAO{
    
    //Atributos
    private List<LeyendaEtiqueta> misLeyendasEtiqueta;

    //Contructores
     public LeyendaEtiquetaDAO(JCO.Function aFunction) throws DataTypeInvalidConversionException, TableNotFoundException {
         super.setMyTableName("T_TEXT_ETIQ");
         super.setMyTable(aFunction);     
         this.misLeyendasEtiqueta = new ArrayList();         
    }

     //Getters & Setters
    public List<LeyendaEtiqueta> getMisLeyendasEtiquetas() {
        return misLeyendasEtiqueta;
    }

    //Metodos privados
    /**
     * Agrega una "leyendaEtiqueta" a la coleccion "misLeyendasEtiquetas".
     * @param laLeyendaEtiqueta
     */
    private void addUnaLeyendaEtiqueta(LeyendaEtiqueta laLeyendaEtiqueta) {
        this.misLeyendasEtiqueta.add(laLeyendaEtiqueta);
    }
    
    /**
     * Columnas de Etiquetas:
     * MANDT		MANDT           CLNT	3	Mandante
     * CODIGO	ZCDO_TXT	NUMC3           Codigo de texto de tratamiento en linea
     * ZDESCRIP_ETIQ	ZDESCR_255	CHAR	255	Descripción del tratamiento  para etiqueta
     */
    
    //Metodos publicos
    /**
     * Recorre "miTabla" de la RFC y por cada registro crea una "leyendaEtiqueta" y lo agrega a "misLeyendasEtiquetas".
     */
    @Override
    public void findAll() throws SapGeneralException {
        LeyendaEtiqueta leyendaEtiqueta;
        try{
            for (int i = 0; i < super.getMyTable().getNumRows(); i++){
                super.getMyTable().setRow(i);            
                leyendaEtiqueta=new LeyendaEtiqueta(super.getMyTable().getString("CODIGO"),super.getMyTable().getString("ZDESCRIP_ETIQ"));
                addUnaLeyendaEtiqueta(leyendaEtiqueta);
            }
            
        }catch(JCO.ConversionException ex){
            try {
                throw new DataTypeInvalidConversionException(ex.getMessage());
            } catch (DataTypeInvalidConversionException ex1) {
                throw new SapGeneralException(ex1.getMessage());
            }
        }
    }
    /**
     * Solo para las pruebas.
     * Imprime todos los registros de "miTabla".
     */
    @Override
    public void printAll() {
        System.out.println("MANDT"+'\t'+"CODIGO"+'\t'+"ZDESCRIP_ETIQ");
        for (int i = 0; i < super.getMyTable().getNumRows(); i++){
            super.getMyTable().setRow(i);            
            System.out.println(super.getMyTable().getString("MANDT")  +
            '\t' + super.getMyTable().getString("CODIGO") +
            '\t' + super.getMyTable().getString("ZDESCRIP_ETIQ")
             );                
        }
    }

}
